package com.tarena.lbs.coupon.pojo.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

@Data
public class CouponVO {
    @Schema(description  = "优惠券ID")
    private Integer id;

    @Schema(description  = "优惠券名称")
    private String couponName;

    @Schema(description  = "优惠券编码")
    private String couponCode;

    @Schema(description  = "优惠券类型：1-满减券 2-折扣券 3-现金券 4-免运费券 5-特价券")
    private Integer couponType;

    @Schema(description  = "抵扣金额")
    private BigDecimal discountValue;

    @Schema(description  = "最大抵扣金额")
    private BigDecimal maxDiscountAmount;

    @Schema(description  = "使用范围")
    private String applicable;

    @Schema(description  = "最大领取次数")
    private Integer usageLimit;

    @Schema(description  = "单次消费限制张数")
    private Integer maxUsageLimit;

    @Schema(description  = "开始时间")
    private Date startDate;

    @Schema(description  = "截止时间")
    private Date endDate;

    // 删除重复的status字段
    // @Schema(description = "状态")
    // private Integer status;

    @Schema(description  = "描述")
    private String describes;

    @Schema(description  = "商家ID")
    private Integer businessId;

    @Schema(description  = "创建时间")
    private Date createAt;

    @Schema(description  = "更新时间")
    private Date updateAt;

    @Schema(description  = "领取数量")
    private Integer usageNum;

    @Schema(description  = "启用状态：0-禁用 1-启用")
    private Integer enableStatus;

    @Schema(description  = "互斥类型")
    private Integer exclusionType;

    @Schema(description  = "订单金额")
    private Long orderAmount;
    
    @Schema(description = "状态(0:已删除, 1:未删除)")
    private Integer couponStatus;
    
    // 添加状态描述字段
    @Schema(description = "优惠券状态描述")
    private String statusDesc;
    
    @Schema(description = "优惠券类型描述")
    private String couponTypeDesc;
    
    @Schema(description = "启用状态描述")
    private String enableStatusDesc;
}